Video traffic is currently accountable for over 60% of the world's bandwidth usage over communication networks such as the Internet or any similar wireless communication network today such as LANs, WLANs etc. How such data is injected into a network has a strong influence on the overall data flow through the network. Uncontrolled data injection into a network can lead to congestion impacts such as slow overall traffic flow, packet delay, packet loss, packet out of order, packet re-transmission, flooding/crashing of network devices (routers, switches etc.), and flooding of uncontrollable traffic. These types of events cause network traffic to slow down and sometimes to come to a complete stop if the switching & routing network equipment in use is unable to cope with the flow demand. Additionally, unmanaged data injection will have a negative impact for applications that rely on real-time communication such as VoIP (Voice over IP), live broadcasts of media events, real-time video conferences and other time-sensitive applications.
HTTP Live streaming (HLS, and referred as such herein after) is a HTTP-based media streaming communications protocol currently being implemented. HLS functions by breaking the overall data stream into a sequence of small HTTP-based file downloads; each download loading one short portion or chunk of an overall potentially unbounded transport stream. As the stream is played, the client player or client device, which may be a set top box or a smart media player may select from a number of different streams containing the same material, but encoded at a plurality of different data rates, allowing the streaming session to adapt to the available data rates. At the start of the streaming session, the client device is arranged to download an extended M3U (m3u8) playlist, i.e. for specifying the locations of one or more media files, containing the metadata for the various sub-streams which are available. Since HLS based requests use standard HTTP transactions, HLS is capable of traversing any firewall or proxy server that lets through standard HTTP traffic, unlike User Datagram Protocol (UDP)-based protocols such as Real-time Transfer Protocol (RTP). This also allows content to be delivered over widely available Content Delivery Networks (CDN).
HLS also specifies a standard encryption mechanism using Advanced Encryption Standard (AES) and a method of secure key distribution using HTTPS with either a device specific login or HTTP cookie, such as a session key, which together, can provide a simple Digital Rights Management (DRM) system.
HLS also supports adaptive bit rate technology, which is controlled by the client side device, based on available download bandwidth. More specifically, as in implementations in use today, adaptive bitrate streaming is a method of video streaming over HTTP where the source content is encoded at multiple bit rates. Each of the different bit rate streams are then segmented into small multi-second parts. The streaming client is made aware of the available streams at differing bit rates, and segments of the streams by a manifest file. When starting, the client requests the segments from the lowest bit rate stream. If the client finds the download speed is greater than the bit rate of the segment downloaded, then it will request the next higher bit rate segments. Later, if the client finds the download speed for a segment is lower than the bit rate for the segment, and therefore the network throughput has deteriorated, it will request a lower bit rate segment. The segment size can vary depending on the particular implementation, but they are typically between two and ten seconds.
Conventional HLS exposes many flaws on the client device, i.e. player side, which can impact both bandwidth usage and user viewing experience. These drawbacks can include all or any of the following: uncontrollable video quality; poor bandwidth usage between transport stream (TS) segments; inability to co-exist with other HLS clients intelligently; inability to achieve fast video acquisition; inability to aggressively compete with other traffic; inability to avoid congested networks; inability to minimize video buffering over public networks; inability to give priority to other traffic, and inability to recycle data.
Therefore, there exists a need for a new data flow control method or protocol for data packet transmission over a communication network that overcomes the drawbacks of conventional HLS and which can work in conjunction with existing systems that are set up for HLS.